Wir beginnen mit der Reconnaissance, um Informationen über das Zielsystem zu sammeln. Dies umfasst das Scannen des Netzwerks und das Auflisten von Hosts, um potenzielle Angriffspunkte zu identifizieren.
ARP-Scan zeigt uns die MAC-Adresse und den Hersteller der Netzwerkkarte des Ziels. Dies kann hilfreich sein, um das Betriebssystem oder die verwendete Virtualisierungstechnologie zu bestimmen.
Der Eintrag in der /etc/hosts-Datei ermöglicht uns, das Zielsystem über den Hostnamen `dmv2.vln` anzusprechen. Dies erleichtert die weitere Analyse und das Testen.
Nmap identifiziert offene Ports und Dienste auf dem Zielsystem. Besonders interessant sind: - SSH (Port 22): Ermöglicht die sichere Fernanmeldung. - HTTP (Port 80): Ein Webserver, der möglicherweise anfällige Anwendungen hostet. Interessanterweise wird ein Git-Repository gefunden. - Port 4545: Ein benutzerdefinierter Dienst mit einer Admin-Oberfläche. Die Apache-Version (2.4.29) deutet auf veraltete Software hin, die bekannte Schwachstellen aufweisen könnte.
Nachdem wir die offenen Ports identifiziert haben, konzentrieren wir uns auf den Webserver und das gefundene Git-Repository.
Nikto findet verschiedene potenziielle Sicherheitsprobleme, darunter: - Fehlende X-Frame-Options und X-Content-Type-Options Header: Erhöhen das Risiko von Clickjacking- und MIME-Sniffing-Angriffen. - Vorhandensein eines offen zugänglichen Git-Repositorys (`/.git`), was potenziell sensible Informationen offenlegen könnte. - Veraltete Apache-Version: Kann bekannte Schwachstellen enthalten.
Gobuster findet die folgenden Verzeichnisse: - `/index.php`: Hauptseite der Webanwendung. - `/images`: Verzeichnis für Bilder. - `/js`: Verzeichnis für JavaScript-Dateien. - `/tmp`: Ein temporäres Verzeichnis.
Nach der Enumeration konzentrieren wir uns auf das ausnutzen des gefundenen Git-Repositorys und dem untersuchen des Dienstes auf Port 4545.
Wir verbinden uns mit dem Dienst auf Port 4545 und wählen Option 1 ("Main site"). Die Ausgabe deutet darauf hin, dass der Dienst versucht, ein Git-Update durchzuführen, aber aufgrund von Berechtigungsproblemen fehlschlägt.
Wir versuchen, das Git-Repository mit `git-dumper` herunterzuladen, aber der Befehl schlägt fehl, da das Modul `git_dumper` nicht gefunden wurde.
Wir verwenden dirb, um die Struktur des Git-Repositorys zu erkunden. Wir finden die Dateien `config`, `index` und `info/exclude`.
Wir haben die Module nun mit Git-Dumper herunterladen und werden in kürze das Repository durchsuchen.
Der Befehl cat config zeigt, dass der Remote-Benutzer Developerdmv ist.
Wir versuchen erneut, eine Command Injection durchzuführen, aber die Youtube Video Validation macht und hier ein Strich durch die Rechnung, da es sich um eine Datei validierung handelt, und kein Code.
Mit den im Git-Repository gefundenen Informationen und den aus der Analyse des Dienstes auf Port 4545 gewonnenen Erkenntnissen setzen wir den Pentest nun fort mit dem Ziel des Benutzer Developerdmv.
Mit den im Git-Repository gefundenen Informationen, versuchen wir uns mit dem gefundenen Benutzer am Dienst SSH zu verbinden.
Wir loggen uns mit dem via Git gefoundenen Benutzer via SSh ein.
Wir Überprüfen das wir im System als Developerdmv angemeldet sind.
Der Benutzer `developerdmv` darf keine Befehle mit `sudo` ausführen.
Wir suchen nach SUID-Binaries.
Wir holen uns per cat FETCH_HEAD Infos des Git head.
Wir haben die Privilege Eskalation durchgeführt.